/*************************************************
filename	: texture.h
author		: Stefan lulham
desc		: Contains the base graphics texture class
*************************************************/
#ifndef D_GRAPHICS_TEXTURE_H
#define D_GRAPHICS_TEXTURE_H

#include <iostream>
#include <delgeError.h>

using namespace std;
using namespace DelGE;

namespace DelGE
{
	namespace Modules
	{
		namespace Graphics
		{
			enum GraphicsTexture_UVWrapMode
			{
				GraphicsTexture_UVWrapMode_Clamp,
				GraphicsTexture_UVWrapMode_Repeat
			};

			class Texture
			{
			protected:	
				int iWidth, iHeight;				// Size of the loaded texture.
				int iWidthPow2, iHeightPow2;		// Size of the texture in memory, some textures might need to be resized
													// to be a power of 2.
				float fUOffset, fVOffset;			// If the texture has been resize then it will have blank areas where there
													// is no useful texture information, so the UV end coords of the actual texture
													// will have to be offset.
				Texture() {};

			public:
				virtual ~Texture() {};

				int GetWidth();
				int GetHeight();
				int GetWidthPow2();
				int GetHeightPow2();
				float GetUOffset();
				float GetVOffset();
			};
		}
	}
}

#endif